// 从mock获取新闻数据（实际项目替换为接口请求）
async function getNewsData() {
    try {
        const response = await fetch('../backend/mock/news.json');
        const data = await response.json();
        return data;
    } catch (error) {
        console.error('获取新闻数据失败：', error);
        // 模拟数据降级
        return [
            { id: 1, title: '国内经济稳步增长，三季度GDP同比增长5.2%', type: '国内', time: '2025-10-01', image: 'images/news1.jpg', content: '国内经济在多项政策支持下持续稳步增长，市场信心不断提升。国家统计局数据显示，三季度GDP同比增长5.2%，环比增长1.1%，延续上半年平稳向好态势。分产业看，第一产业增加值同比增长3.6%，粮食生产稳定；第二产业增加值增长5.8%，高端制造领域增速超15%；第三产业增加值增长5.0%，接触性消费回暖明显。' },
            { id: 2, title: '全球气候峰会达成新共识，130国承诺2030年减排45%', type: '国际', time: '2025-09-30', image: 'images/news2.jpg', content: '为期一周的全球气候峰会在法国巴黎闭幕，196国代表达成多项共识。130个国家共同签署《巴黎气候新协议》，承诺2030年碳排放量较2019年减少45%，2050年前实现碳中和。协议明确，发达国家2030年前向发展中国家提供每年1000亿美元气候援助资金，同时建立全球碳交易市场，以市场化手段推动减排目标落地。' },
            { id: 3, title: '新型AI模型可精准预测天气，短期预报准确率超95%', type: '科技', time: '2025-09-29', image: 'images/news3.jpg', content: '国内科研团队发布新型气象AI模型，通过整合卫星云图、地面观测数据及历史气候资料，实现对未来72小时天气的精准预测，短期预报准确率突破95%。该模型可提前预警暴雨、台风等极端天气，为农业生产、防灾减灾提供重要支撑，目前已在多个省份气象部门试点应用。' },
            { id: 4, title: '《山河故人》国庆档票房破10亿，成年度黑马影片', type: '娱乐', time: '2025-10-02', image: 'images/news4.jpg', content: '国庆档电影市场迎来爆发，国产剧情片《山河故人》凭借细腻的情感表达和扎实的叙事，上映5天票房突破10亿，成为年度黑马。影片聚焦三代人的生活变迁，引发观众强烈情感共鸣，豆瓣评分稳定在8.7分，口碑与票房双丰收。业内人士预测，该片最终票房有望冲击15亿大关。' }
        ];
    }
}

// 渲染新闻列表
function renderNewsList(newsList) {
    const newsContainer = document.getElementById('news-list');
    const newsCountEl = document.getElementById('news-count');
    
    // 清空容器
    newsContainer.innerHTML = '';
    newsCountEl.textContent = `${newsList.length}条新闻`;

    // 无数据时显示提示
    if (newsList.length === 0) {
        newsContainer.innerHTML = '<div class="no-news text-gray-500 text-center py-10">暂无匹配的新闻</div>';
        return;
    }

    // 渲染每条新闻
    newsList.forEach(news => {
        const newsCard = document.createElement('div');
        newsCard.className = 'news-card';
        newsCard.innerHTML = `
            <img src="${news.image || 'https://via.placeholder.com/350x200?text=无图'}" alt="${news.title}" class="news-card-img">
            <div class="news-card-content">
                <h3 class="news-card-title"><a href="news-detail.html?id=${news.id}">${news.title}</a></h3>
                <div class="news-card-meta">
                    <span class="news-type bg-blue-500 text-white px-2 py-1 rounded text-xs">${news.type}</span>
                    <span class="news-time text-gray-500 text-xs">${news.time}</span>
                </div>
                <p class="news-card-desc text-gray-600">${news.content.slice(0, 80)}${news.content.length > 80 ? '...' : ''}</p>
                <a href="news-detail.html?id=${news.id}" class="news-card-more text-blue-500 hover:text-blue-700 text-sm">查看详情 →</a>
            </div>
        `;
        newsContainer.appendChild(newsCard);
    });
}

// 分类筛选
function initCategoryFilter(newsList) {
    const navLinks = document.querySelectorAll('.main-nav a[data-type]');
    const homeLink = document.querySelector('.main-nav a[href="index.jsp"]');
    const currentFilterEl = document.getElementById('current-filter');

    // 分类筛选逻辑
    navLinks.forEach(link => {
        link.addEventListener('click', (e) => {
            e.preventDefault();
            const type = link.getAttribute('data-type');
            const filteredNews = newsList.filter(news => news.type === type);
            
            // 更新UI
            currentFilterEl.textContent = `${type}新闻`;
            renderNewsList(filteredNews);
            // 激活当前分类
            navLinks.forEach(l => l.classList.remove('active'));
            homeLink.classList.remove('active');
            link.classList.add('active');
        });
    });

    // 首页按钮：显示全部新闻
    homeLink.addEventListener('click', (e) => {
        e.preventDefault();
        currentFilterEl.textContent = '全部新闻';
        renderNewsList(newsList);
        // 激活首页
        navLinks.forEach(l => l.classList.remove('active'));
        homeLink.classList.add('active');
    });
}

// 搜索功能
function initSearch(newsList) {
    const searchInput = document.getElementById('search-input');
    const searchBtn = document.getElementById('search-btn');
    const currentFilterEl = document.getElementById('current-filter');

    // 搜索核心逻辑
    function handleSearch() {
        const keyword = searchInput.value.trim().toLowerCase();
        if (!keyword) {
            alert('请输入搜索关键词');
            return;
        }
        // 筛选标题/内容包含关键词的新闻
        const searchedNews = newsList.filter(news => 
            news.title.toLowerCase().includes(keyword) || 
            news.content.toLowerCase().includes(keyword)
        );
        // 更新UI
        currentFilterEl.textContent = `搜索结果："${keyword}"`;
        renderNewsList(searchedNews);
        // 清空搜索框
        searchInput.value = '';
    }
    // 按钮点击搜索
    searchBtn.addEventListener('click', handleSearch);
    // 回车键搜索
    searchInput.addEventListener('keydown', (e) => {
        if (e.key === 'Enter') handleSearch();
    });
}
// 页面加载初始化
window.onload = async function() {
    const newsList = await getNewsData();
    // 初始渲染全部新闻
    renderNewsList(newsList);
    // 初始化分类筛选
    initCategoryFilter(newsList);
    // 初始化搜索功能
    initSearch(newsList);
};